import { i18n } from '@/i18n'

const { t, locale } = i18n.global
export function getLocalImageUrl(name) {
  return new URL(`../assets/img/${name}`, import.meta.url).href
}

export function setImgUrl(imgUrl) {
  if (imgUrl) {
    const url = 'http://47.122.5.198:8080/dev-api'
    // 判断 imgUrl 是不是逗号拼接的多个图片地址
    if (imgUrl.includes(',')) {
      const imgUrls = imgUrl.split(',')
      return url + imgUrls[0]
    }
    else {
      return url + imgUrl
    }
  }
  else {
    return ''
  }
}
export function getLocalBrandName(item) {
  switch (locale.value) {
    case 'zh-CN':
      return item.brand
    case 'en':
      return item.brandEnglish || item.brand
    case 'fr':
      return item.brandFrench || item.brand
    case 'ru':
      return item.brandRussian || item.brand
    case 'es':
      return item.brandSpanish || item.brand
    case 'ar':
      return item.brandArabic || item.brand
    default:
      return item.brand
  }
}

export function getLocalProductName(item) {
  switch (locale.value) {
    case 'zh-CN':
      return item.productName
    case 'en':
      return item.productEnglish || item.productName
    case 'fr':
      return item.productFrench || item.productName
    case 'ru':
      return item.productRussian || item.productName
    case 'es':
      return item.productSpanish || item.productName
    case 'ar':
      return item.productArabic || item.productName
    default:
      return item.productName
  }
}

export function getLocalCareModelName(item) {
  switch (locale.value) {
    case 'zh-CN':
      return item.modelZh
    case 'en':
      return item.modelEnglish || item.modelZh
    case 'fr':
      return item.modelFrench || item.modelZh
    case 'ru':
      return item.modelRussian || item.modelZh
    case 'es':
      return item.modelSpanish || item.modelZh
    case 'ar':
      return item.modelArabic || item.modelZh
    default:
      return item.modelZh
  }
}

/**
 * 深拷贝函数，用于递归地复制对象或数组的所有属性，确保深层次的对象或数组不会相互引用。
 *
 * @param {any} value 需要进行深拷贝的值，可以是对象、数组或者其他基本数据类型。
 * @returns {any} 返回深拷贝后的新对象或新数组。
 *
 * @example
 * const original = { a: 1, b: { c: 2, d: [3, 4] } };
 * const copy = deepClone(original);
 * console.log(copy); // 输出 { a: 1, b: { c: 2, d: [3, 4] } }
 * console.log(copy !== original); // true
 * console.log(copy.b !== original.b); // true
 *
 * @throws {TypeError} 如果传入的参数不是对象或数组，会抛出类型错误。
 */
export function deepClone(value) {
  // 如果值是基本数据类型，直接返回
  if (value === null || typeof value !== 'object') {
    return value
  }

  // 处理日期对象
  if (value instanceof Date) {
    return new Date(value)
  }

  // 处理正则表达式
  if (value instanceof RegExp) {
    return new RegExp(value)
  }

  // 处理数组
  if (Array.isArray(value)) {
    const arrCopy = []
    for (let i = 0; i < value.length; i++) {
      arrCopy[i] = deepClone(value[i])
    }
    return arrCopy
  }

  // 处理对象
  const objCopy = {}
  for (const key in value) {
    if (Object.prototype.hasOwnProperty.call(value, key)) {
      objCopy[key] = deepClone(value[key])
    }
  }

  return objCopy
}
